perm filename REMSIM.FAI[CMS,LCS] blob
sn#298148 filedate 1977-07-24 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00030 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 TITLE SIMU
C00005 00003 BMI ←60
C00007 00004 BCC ←220
C00008 00005 CPYI ←300
C00009 00006 ZWD: -1,,777400
C00012 00007 LOADER:
C00014 00008 ERRO: OUTSTR [ASCIZ/ ???
C00016 00009 MTST: HRRZI D,(DR)
C00018 00010 IO: TDZ D,ZWD D HAS ADDRESS
C00023 00011 dddlin ←←20000
C00025 00012 ZPAGE: PUSHJ P,IFTCH
C00028 00013 LDIM: PUSHJ P,IFTCH
C00030 00014 PUTCH: HRRZI MA,PONE(SP)
C00032 00015 ORAC: OR A
C00033 00016 ADDER: TRZ PS,VBIT
C00035 00017 INSTBL:
C00038 00018 [ TRZ PS,CBIT CLC
C00040 00019 [ PUSHJ P,PUL PLP
C00042 00020 [ PUSHJ P,PUL RTI
C00043 00021 [ HRRZI B,VBIT BVC
C00044 00022 [ PUSHJ P,PUL RTS
C00046 00023 [ TRO PS,IBIT SEI
C00048 00024 [ HRRZI B,CBIT
C00050 00025 [ HRRZI (A)
C00052 00026 [ PUSHJ P,IFTCH
C00054 00027 [ TRZ PS,DBIT
C00056 00028 [ HRRZI B,ZBIT
C00057 00029 IBUF: BLOCK 4
C00058 00030 GETNAM: MOVEI A,
C00059 ENDMK
C⊗;
TITLE SIMU
EXTERNAL $I
A←1 ↔ X←2 ↔ Y←3 ↔ SP←4 ↔ PS←5 ↔ PC←6
IR←7 ↔ B←←10 ↔ C←←11 ↔ D←←12 ↔ F←←16
E←←13 ↔ DR←←14 ↔ MA←←15 ↔ P←17 ↔ NBUFS←←4
CBIT←←1 ↔ ZBIT←←2 ↔ IBIT←←4 ↔ DBIT←←10
BRKBIT←←20 ↔ VBIT←←100 ↔ NBIT←←200
RSTV←177774 ↔ NMIV←177772 ↔ IRQV←177776
PONE←←400 ↔ NEG1←←377 ↔ BNINE←←400
ZHW←777400 ↔ ZHW16←600000 ↔ IOBIT←200000
IOMSK←400000 ↔ RAMBIT←100000
BRK ←←0
ORAIX ←←1
ORAZ ←←5
ASLZ ←←6
PHP ←10
ORAI ←11
ASLA ←12
ORA ←15
ASL ←16
BPL ←20
ORAIY ←21
ORAZX ←25
ASLZX ←26
CLC ←30
ORAY ←31
ORAX ←35
ASLX ←36
JSR ←40
ANDIX ←41
BITZ ←44
ANDZ ←45
ROLZ ←46
PLP ←50
ANDI ←51
ROLA ←52
BIT ←54
AND ←55
ROL ←56
BMI ←60
ANDIY ←61
ANDZX ←65
ROLZX ←66
SEC ←70
ANDY ←71
ANDX ←75
ROLX ←76
RTI ←100
EORIX ←101
EORZ ←105
LSRZ ←106
PHA ←110
EORI ←111
LSRA ←112
JMP ←114
EOR ←115
LSR ←116
BVC ←120
EORIY ←121
EORZX ←125
LSRZX ←126
CLI ←130
EORY ←131
EORX ←135
LSRX ←136
RTS ←140
ADCIX ←141
ADCZ ←145
PLA ←150
ADCI ←151
JMPIN ←154
ADC ←155
BVS ←160
ADCIY ←161
ADCZX ←165
SEI ←170
ADCY ←171
ADCX ←175
STAIX ←201
STYZ ←204
STAZ ←205
STXZ ←206
DEY ←210
TXA ←212
STY ←214
STA ←215
STX ←216
BCC ←220
STAIY ←221
STYZX ←224
STAZX ←225
STXZY ←226
TYA ←230
STAY ←231
TXS ←232
STAX ←235
LDYI ←240
LDAIX ←241
LDXI ←242
LDYZ ←244
LDAZ ←245
LDXZ ←246
TAY ←250
LDAI ←251
TAX ←252
LDY ←254
LDA ←255
LDX ←256
BCS ←260
LDAIY ←261
LDYZX ←264
LDAZX ←265
LDXZY ←266
CLV ←270
LDAY ←271
TSX ←272
LDYX ←274
LDAX ←275
LDXY ←276
CPYI ←300
CMPIX ←301
CPYZ ←304
CMPZ ←305
DECZ ←306
INY ←310
CMPI ←311
DEX ←312
CPY ←314
CMP ←315
DEC ←316
BNE ←320
CMPIY ←321
CMPZ ←325
DECZX ←326
CLD ←330
CMPY ←331
CMPX ←335
DECX ←336
CPXI ←340
SBCIX ←341
CPXZ ←344
SBCZ ←345
INCZ ←346
INX ←350
SBCI ←351
NOP ←352
CPX ←354
SBC ←355
INC ←356
BEQ ←360
SBCIY ←361
SBCZX ←365
INCZX ←366
SED ←370
SBCY ←371
SBCX ←375
INCX ←376
ZWD: -1,,777400
ZWD16: -1,,600000
PDL: BLOCK 100
R: BYTE (7) 175,175,175,"O","A"
BYTE (7) 175,";","X",175,";"
BYTE (7) "Y",175,";","S","P"
BYTE (7) 175,";","P","S",175
BYTE (7) ";","P","C",175,";"
BYTE (7) 175,175,175,"C","I"
BYTE (7) "R",175,";"
SS: BYTE (7) "X","C","U","T","E"
BYTE (7) 175,"B",175,"P"
N: BYTE (7) "I","F","L","G",";"
BYTE (7) "N","M","I","V",12
BYTE (7) 175,"P"
I: BYTE (7) "I","F","L","G",";"
BYTE (7) "1",",",",","0",12
BYTE (7) 175,"P"
STAR: RESET
HRLZI MEM
HRRI MEM+1
SETOM MEM
BLT MEM+77777
MAP: MOVE P,[PDPO: IOWD 100,PDL]
SETZ X,
MOVE D,[RAMBIT,,RAMBIT]
PUSHJ P,MEMDF
PUSHJ P,DEFA
AOJ X,
SETZ D,
PUSHJ P,MEMDF
PUSHJ P,DEFA
AOJ X,
MOVE D,[IOMSK,,IOMSK]
PUSHJ P,MEMDF
PUSHJ P,DEFA
GFILE:
; CLRBFI
OUTSTR [ASCIZ/
DMP FILE = /]
PUSHJ P,GNAME
OPEN 11,[14↔'DSK '↔IBUF]
JRST 4,.
INBUF 11,NBUFS
LOOKUP 11,FILNAM
CAIA
PUSHJ P,LOADER
ZRG: MOVE [1,,2]
SETZ A,
BLT PC
RST: MOVE P,PDPO
PUSHJ P,SETRST
JSR $I
FETCH: SKIPE E,IFLG#
PUSHJ P,INTR
PUSHJ P,IFTCH
HRRZI IR,(DR)
XCUTE: PUSHJ P,@INSTBL(IR)
JRST FETCH
INTR: CAIN E,RSTV
JRST RES
TRNE E,-1
JRST NOCK
TRNE PS,IBIT
POPJ P,
HRRZI E,IRQV
MOVEM E,IFLG
NOCK: PUSHJ P,PUPC+1
SETZM PTSET ;←←←←
PUSHJ P,@INSTBL+PHP
RES: HRRZ PC,IFLG
TRO PS,IBIT
HRRZI DR,JMP
SETZ E,
HRRM E,IFLG
AOS (P)
POPJ P,
LOADER:
PUSHJ P,INP+1
HRRZI X,200
ADD X,IBUF+2
HRLZI Y,-100000
LOAD: PUSHJ P,INP
HRLZ A,1(X)
AOBJP X,GIN
GMO: HRR A,1(X)
ORM A,MEM(Y)
AOBJP Y,DONE
AOBJN X,LOAD+1
JRST LOAD
DONE: POPJ P,
GIN: PUSHJ P,INP
JRST GMO
INP: HRRM X,IBUF+1
IN 11,
JRST SETX
STATO 11,20000
JRST 4,.
POP P,
POPJ P,
SETX: HRRZ X,IBUF+2
MOVNI X,(X)
HRLZI X,(X)
HRR X,IBUF+1
POPJ P,
DEFA: MOVE DR,BTBL(X)
MOVEM D,-1(DR)
BLT DR,@DTBL(X)
POPJ P,
BTBL: MEM,,MEM+1
MEM+77000,,MEM+77001 ;SHOULD BE 77000
MEM+76040,,MEM+76041
DTBL: MEM+3777
MEM+77777
MEM+76077
STRTBL: [ASCIZ/
RAM BLOCK (ADR ∨ L:H) = /]
[ASCIZ/
ROM BLOCK (ADR ∨ L:H) = /]
[ASCIZ*
I/O BLOCK (ADR ∨ L:H) = *]
ERRO: OUTSTR [ASCIZ/ ???
/]
MEMDF:
; CLRBFI
OUTSTR @STRTBL(X)
INCHWL A
CAIN A,15
JRST .-2 ;Ignore <cr>
CAIN A,12
POPJ P,
PUSHJ P,INNUM
TDNE ZWD16
JRST ERRO
HRRZ DR,
INCHRS A
JRST ERRO
CAIN A,12
JRST ONEAD
PUSHJ P,INNUM
TDNE ZWD16
JRST ERRO
MKIT: HRRZI E,(DR)
LSH DR,-1
ADDI DR,MEM
HRRZ MA,
LSH MA,-1
CAILE DR,MEM(MA)
JRST ERRO
AOS (P) ;FOR NOT DEFALT
ANDI E,1
JUMPE E,EVEN
HRRM D,(DR)
CAIL DR,MEM(MA)
JRST MEMDF
AOJ DR,
EVEN: ANDI 1
JUMPN MOV
HLLM D,MEM(MA)
CAIL DR,MEM(MA)
JRST MEMDF
SOJ MA,
MOV: MOVEM D,(DR)
CAIL DR,MEM(MA)
JRST MEMDF
HRLI DR,(DR)
AOJ DR,
BLT DR,MEM(MA)
JRST MEMDF
ONEAD: HRRZI (DR)
JRST MKIT
INNUM: SETZ
CAIL A,60
CAILE A,67
POPJ P,
IMULI 10
ADDI -60(A)
INCHRS A
POPJ P,
JRST INNUM+1
MTST: HRRZI D,(DR)
LSH DR,-1
ANDI D,1
XCT POTBL(D)
TRNE ZHW ;TEST FOR ROM
SKIPL C, ;TEST FOR RAM
POPJ P,
NRAM: TRNN IOBIT
JRST IO
ILMEM: JSR $I
POPJ P,
POTBL: HLRE MEM(DR)
HRRE MEM(DR)
UDO: JSR $I
POPJ P,
MFTCH: HRRZI DR,(MA)
PUSHJ P,MTST
TDZ ZWD
POPJ P,
IFTCH: HRRZI DR,(PC)
PUSHJ P,MTST
TDZ ZWD
HRRZ DR,
AOJ PC,
TRZ PC,ZHW16
POPJ P,
AFTCH: PUSHJ P,IFTCH
HRRZI MA,(DR)
PUSHJ P,IFTCH
LSH 10
OR MA,
POPJ P,
DPTBL: HRLM MEM(DR)
HRRM MEM(DR)
MEMDP: TDZ ZWD
HRRZ D,
HRRZI DR,(MA)
LSH DR,-1
ANDI MA,1
XCT POTBL(MA)
TRNN ZHW
JRST WROM
SETZ C,
SKIPG
PUSHJ P,NRAM
ANDI ZHW
ORI (D)
XCT DPTBL(MA)
POPJ P,
WROM: JSR $I
POPJ P,
IO: TDZ D,ZWD ;D HAS ADDRESS
SKIPL C
JRST WRT
TRNN DR,30 ;SKIP IF BEE I/O
JRST BEREAD
TRNE DR,20
POPJ P, ;NOTHING ON READ MOD I/O AND BRGEN
SKIPE BRM ;NOTHING IF NO BRATE
SKIPE ACIAM
POPJ P, ;DO NOTHING IF NOT INITED
JUMPN D,RMODD
PTIFRE PADR
SKIPE PADR+1
HRRZI 2
PTOCNT PADR
SKIPE PADR+1
AOJ ;RETURN CONTROL REG
POPJ P,
RMODD: PTRD1W PADR
HRRZ PADR+1
SETOM PTSET
POPJ P,
BEREAD: SKIPE BRB ;NOTHING IF NO BRATE
SKIPE ACIAB
POPJ P, ;DO NOTHING IF NOT INITED
JUMPN D,RBEED ;JUMP IF DATA REG
SLOO: SKIPN PTSET
JRST GSTAS
SNEAKS
CAIA
JRST GSTAS
SKIPN D,IFLG
JRST CKPTO
TRNN D,-1
TRNN PS,IBIT
JRST INTRET
CKPTO: PTOCNT PADR
SKIPN PADR+1
JRST NITEY
INTRET: HRRZI 2
POPJ P,
NITEY: HRRZI 1
SLEEP
JRST SLOO
GSTAS: HRRZI 3 ;RETURN STATUS
POPJ P,
RBEED: INCHRW
POPJ P,
PTSET: 0
PADR: 0
0
RABC:0
BRB: 0
BRM: 0
WRT: TRNN DR,30
JRST WAB
TRNN DR,20
JRST WAM
TRNN DR,1
JRST INITB
SETOM BRM
POPJ P,
INITB: SETOM BRB
POPJ P,
WAB: JUMPE MA,WABC ;TEST FOR CONTROL REG
SKIPE BRB
SKIPE ACIAB
POPJ P,
OUTCHR D
POPJ P,
WABC: TRNN D,3
POPJ P,
TRNN D,2
JRST SETIT
SETZ D,
HRRM D,ACIAB
POPJ P,
SETIT: HRRZ D,ACIAB
SKIPE D ;?
POPJ P,
SETZM PTSET
SETZM ACIAB
POPJ P,
WAM: JUMPE MA,WAMC ;TEST FOR CONTROL REG
SKIPE BRM
SKIPE ACIAM
POPJ P,
SETOM PTSET
HRRZM D,PADR+1
PTWR1W PADR
POPJ P,
WAMC: TRNN D,3
POPJ P,
TRNN D,2
JRST SITM
SETZ D,
HRRM D,ACIAM
POPJ P,
SITM: HRRZ D,ACIAM
SKIPE D
POPJ P,
SKIPE PADR
JRST SMOD
PTYGET PADR
JRST NOPTY
HRRZI D,3
HRRM D,PADR+1 ;NO ECHO
PTJOBX PADR
SMOD: SETZM ACIAM
POPJ P,
NOPTY: OUTSTR [ASCIZ/
NO PTYS ??/]
JRST 4,.
SETIRQ: SETO E,
HRLM E,IFLG
POPJ P,
SETNMI: SETZM PTSET
HRRZI E,NMIV
HRRM E,IFLG
POPJ P,
SETRST: SETOM ACIAB
SETOM ACIAM
SETZM BRB
SETZM PTSET
SKIPN PADR
JRST NPT
PTYREL PADR
SETZM PADR
NPT: SETZM BRM
SETOM DECFLG#
HRRZI E,RSTV
HRRM E,IFLG
POPJ P,
ACIAB: 0
ACIAM: 0
RITEIT: TRNE DR,1
JRST LEDO
; HRRZM D,PREGA ;SAVE IT
JRST POPIT
LEDO:
CAILE D,5
JRST POPIT
MOVNI D,(D)
MOVEM E,DPYTBL+5(D)
JRST DPYS
DPYVAL: MOVNI D,(D)
MOVEM E,VALTBL+1(D)
DPYS: PUSHJ P,DPYIT
OUTSTR DPYTBL
POPIT: POP P,C
POPJ P,
DPY: BYTE (8) 46,0,46 (3) 1,2,1,4
BYTE (8) 2,1,10 (3)3,4,5,4
ASCID/
/
DPYTBL: BLOCK 4
ASCID/
/
VALTBL: BLOCK 2
ASCID/
/
0
dddlin ←←20000
DPYIT: MOVEM SVZ#
outdd: dpypos -620
dpysiz 5001
movni 1
getlin
tlnn dddlin
JRST BACK
DDUPG BUFFPT
AOS (P)
BACK: MOVE SVZ
POPJ P,
SVAC: BLOCK 17
buffpt: 200000,,DPY
23
0
DPY+1
erase: ddupg erspt
popj p,
ersbuf: BYTE (8) 17,0,46 (3) 1,2,1,4 ;funct. code, chan select, funct. code
0
erspt: ersbuf
erspt-ersbuf
0
0
ZPAGE: PUSHJ P,IFTCH
HRRZI MA,(DR)
PUSHJ P,MFTCH
POPJ P,
ZPX: PUSHJ P,IFTCH
HRRZI MA,(DR)
ADDI MA,(X)
TRZ MA,ZHW
PUSHJ P,MFTCH
POPJ P,
ZPY: PUSHJ P,IFTCH
HRRZI MA,(DR)
ADDI MA,(X)
TRZ MA,ZHW
PUSHJ P,MFTCH
POPJ P,
ABS: PUSHJ P,AFTCH
PUSHJ P,MFTCH
POPJ P,]
ABX: PUSHJ P,AFTCH
ADDI MA,(X)
TRZ MA,ZHW16
PUSHJ P,MFTCH
POPJ P,
ABY: PUSHJ P,AFTCH
ADDI MA,(Y)
TRZ MA,ZHW16
PUSHJ P,MFTCH
POPJ P,
INDX: PUSHJ P,IFTCH
ADDI (X)
TRZ ZHW
HRRZ MA,
PUSHJ P,MFTCH
HRRZ F,
AOJ MA,
PUSHJ P,MFTCH
LSH 10
OR F,
HRRZI MA,(F)
PUSHJ P,MFTCH
POPJ P,
INDY: PUSHJ P,ZPAGE
HRRZ F,
AOJ MA,
PUSHJ P,MFTCH
LSH 10
ADDI (F)
HRRZ MA,
PUSHJ P,MFTCH
POPJ P,]
LDIM: PUSHJ P,IFTCH
PUSHJ P,NZTST
POPJ P,
LDZ: PUSHJ P,ZPAGE
PUSHJ P,NZTST
POPJ P,
LDAAB: PUSHJ P,ABS
PUSHJ P,NZTST
POPJ P,
LDAABX: PUSHJ P,ABX
PUSHJ P,NZTST
POPJ P,
LDAABY: PUSHJ P,ABY
PUSHJ P,NZTST
POPJ P,]
LDZX: PUSHJ P,ZPX
PUSHJ P,NZTST
POPJ P,
LDZY: PUSHJ P,ZPY
PUSHJ P,NZTST
POPJ P,
LDIX: PUSHJ P,INDX
PUSHJ P,NZTST
POPJ P,
LDIY: PUSHJ P,INDY
PUSHJ P,NZTST
POPJ P,
STZ: PUSHJ P,IFTCH
HRRZ MA,
HRRZI (B)
PUSHJ P,MEMDP
POPJ P,
STAAB: PUSHJ P,AFTCH
HRRZI (B)
PUSHJ P,MEMDP
POPJ P,
STIX: PUSHJ P,INDX
HRRZI (B)
PUSHJ P,MEMDP
POPJ P,
STIY: PUSHJ P,INDY
HRRZI (B)
PUSHJ P,MEMDP
POPJ P,
STZX: PUSHJ P,ZPX
HRRZI (B)
PUSHJ P,MEMDP
POPJ P,
STZY: PUSHJ P,ZPY
HRRZI (B)
PUSHJ P,MEMDP
POPJ P,
STAABX: PUSHJ P,ABX
HRRZI (B)
PUSHJ P,MEMDP
POPJ P,
STAABY: PUSHJ P,ABY
HRRZI (B)
PUSHJ P,MEMDP
POPJ P,
PUTCH: HRRZI MA,PONE(SP)
PUSHJ P,MEMDP
SOSGE SP
HRRZI SP,NEG1
POPJ P,
PUL: AOJ SP,
TDZ SP,ZWD
HRRZI MA,PONE(SP)
PUSHJ P,MFTCH
POPJ P,
PUPC: PUSHJ P,IFTCH
HRRZI (PC)
LSH -10
PUSHJ P,PUTCH
HRRZI (PC)
PUSHJ P,PUTCH
POPJ P,
NZTST: TRZ PS,NBIT∨ZBIT
SKIPN
TROE PS,ZBIT
TRNN NBIT
POPJ P,
TRO PS,NBIT
POPJ P,
CNZTST: TRZ PS,CBIT
TDZE ZWD
TRO PS,CBIT
PUSHJ P,NZTST
POPJ P,
BITS: TRZ PS,NBIT∨VBIT∨ZBIT
TRNE NBIT
TRO PS,NBIT
TRNE VBIT
TRO PS,VBIT
SKIPN
TRO PS,ZBIT
POPJ P,
BRNCH: TRNE DR,NBIT
TDO DR,ZWD
ADD PC,DR
TDZ ZWD16
POPJ P,
BRT: PUSHJ P,IFTCH
TRNE PS,(B)
PUSHJ P,BRNCH
POPJ P,
BRF: PUSHJ P,IFTCH
TRNN PS,(B)
PUSHJ P,BRNCH
POPJ P,
ORAC: OR A
PUSHJ P,NZTST
HRRZ A,
POPJ P,
ASLF: LSH 1
PUSHJ P,CNZTST
POPJ P,
AAND: AND A
PUSHJ P,NZTST
HRRZ A,
POPJ P,
EORA: XORI (A)
PUSHJ P,NZTST
HRRZ A,
POPJ P,
LSRT: TRZ PS,NBIT∨ZBIT∨CBIT
TRNE 1
TRO PS,CBIT
LSH -1
SKIPN
TRO PS,ZBIT
POPJ P,
ROLF: LSH 1
TRNE PS,CBIT
TRO 1
PUSHJ P,CNZTST
POPJ P,
INCM: AOJ
TRZ ZHW
PUSHJ P,NZTST
POPJ P,
DECM: SOSGE
HRRZI NEG1
PUSHJ P,NZTST
POPJ P,
ADDER: TRZ PS,VBIT
TRNN NBIT
JRST POS
PUSHJ P,ALUX
TRNE B,NBIT
TRNE PS,NBIT
POPJ P,
JRST OV
POS: PUSHJ P,ALUX
TRNN B,NBIT
TRNN PS,NBIT
POPJ P,
OV: TRO PS,VBIT
POPJ P,
ALUX: ADDI (B)
TRNE PS,CBIT
AOJ
PUSHJ P,CNZTST
POPJ P,
SUBER: TRC NEG1
PUSHJ P,ADDER
POPJ P,
ADCA: HRRZI B,(A)
SKIPE DECFLG
XCT ERRO
PUSHJ P,ADDER
HRRZ A,
POPJ P,
SBCA: HRRZI B,(A)
SKIPE DECFLG
XCT ERRO
PUSHJ P,SUBER
HRRZ A,
POPJ P,
CMPER: TRC NEG1
TRO PS,CBIT
PUSHJ P,ALUX
POPJ P,
CMPM: HRRZI B,(A)
PUSHJ P,CMPER
POPJ P,
CPXM: HRRZI B,(X)
PUSHJ P,CMPER
POPJ P,
CPYM: HRRZI B,(Y)
PUSHJ P,CMPER
POPJ P,
INSTBL:
[ TRO PS,BRKBIT ;BRK 0
PUSHJ P,PUPC
PUSHJ P,@INSTBL+PHP
TRO PS,IBIT
HRRZI PC,IRQV
PUSHJ P,@INSTBL+JMP
POPJ P,]
[ PUSHJ P,INDX ;ORAIX 1
PUSHJ P,ORAC
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ZPAGE ;ORAZ 5
PUSHJ P,ORAC
POPJ P,]
[ PUSHJ P,ZPAGE ;ASLZ 6
PUSHJ P,ASLF
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI (PS) ;PHP 10
PUSHJ P,PUTCH
POPJ P,]
[ PUSHJ P,IFTCH ;ORAI 11
PUSHJ P,ORAC
POPJ P,]
[ HRRZI (A) ;ASLA 12
PUSHJ P,ASLF
HRRZ A,
POPJ P,]
UDO
UDO
[ PUSHJ P,ABS ;ORA 13
PUSHJ P,ORAC
POPJ P,]
[ PUSHJ P,ABS ;ASL 14
PUSHJ P,ASLF
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI B,NBIT ;BPL
PUSHJ P,BRF
POPJ P,]
[ PUSHJ P,INDY ;ORAIY
PUSHJ P,ORAC
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ZPX ;ORAZ
PUSHJ P,ORAC
POPJ P,]
[ PUSHJ P,ZPX ;ASLZ
PUSHJ P,ASLF
PUSHJ P,MEMDP
POPJ P,]
UDO
[ TRZ PS,CBIT ;CLC
POPJ P,]
[ PUSHJ P,ABY ;ORAY
PUSHJ P,ORAC
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ABX ;ORAX
PUSHJ P,ORAC
POPJ P,]
[ PUSHJ P,ABX ;ASLX
PUSHJ P,ASLF
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI 1(PC) ;JSR
LSH -10
PUSHJ P,PUTCH
HRRZI 1(PC)
PUSHJ P,PUTCH
PUSHJ P,@INSTBL+JMP
POPJ P,]
[ PUSHJ P,INDX ;ANDIX
PUSHJ P,AAND
POPJ P,]
UDO
UDO
[ PUSHJ P,ZPAGE ;BITZ
PUSHJ P,BITS
POPJ P,]
[ PUSHJ P,ZPAGE ;ANDZ
PUSHJ P,AAND
POPJ P,]
[ PUSHJ P,ZPAGE ;ROLZ
PUSHJ P,ROLF
PUSHJ P,MEMDP
POPJ P,]
UDO
[ PUSHJ P,PUL ;PLP
HRRZ PS,
POPJ P,]
[ PUSHJ P,IFTCH ;ANDI
PUSHJ P,AAND
POPJ P,]
[ HRRZI (A) ;ROLA
PUSHJ P,ROLF
HRRZ A,
POPJ P,]
UDO
[ PUSHJ P,ABS
PUSHJ P,BITS
POPJ P,]
[ PUSHJ P,ABS
PUSHJ P,AAND
POPJ P,]
[ PUSHJ P,ABS
PUSHJ P,ROLF
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI B,NBIT
PUSHJ P,BRT
POPJ P,]
[ PUSHJ P,INDY
PUSHJ P,AAND
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ZPX
PUSHJ P,AAND
POPJ P,]
[ PUSHJ P,ZPX
PUSHJ P,ROLF
PUSHJ P,MEMDP
POPJ P,]
UDO
[ TRO PS,CBIT
POPJ P,]
[ PUSHJ P,ABY
PUSHJ P,AAND
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ABX
PUSHJ P,AAND
POPJ P,]
[ PUSHJ P,ABX
PUSHJ P,ROLF
PUSHJ P,MEMDP
POPJ P,]
UDO
[ PUSHJ P,PUL ;RTI
HRRZ PS,
PUSHJ P,@INSTBL+RTS
SOJ PC,
POPJ P,]
[ PUSHJ P,INDX ;EROIX
PUSHJ P,EORA
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ZPAGE ;EORZ
PUSHJ P,EORA
POPJ P,]
[ PUSHJ P,ZPAGE ;LSRZ
PUSHJ P,LSRT
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI (A) ;PHA
PUSHJ P,PUTCH
POPJ P,]
[ PUSHJ P,IFTCH ;EORI
PUSHJ P,EORA
POPJ P,]
[ HRRZI (A) ;LSRA
PUSHJ P,LSRT
HRRZ A,
POPJ P,]
UDO
[ PUSHJ P,AFTCH ;JMP
HRRZI PC,(MA)
POPJ P,]
[ PUSHJ P,ABS ;EOR
PUSHJ P,EORA
POPJ P,]
[ PUSHJ P,ABS ;LSR
PUSHJ P,LSRT
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI B,VBIT ;BVC
PUSHJ P,BRF
POPJ P,]
[ PUSHJ P,INDY ;EORIY
PUSHJ P,EORA
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ZPX ;EORZX
PUSHJ P,EORA
POPJ P,]
[ PUSHJ P,ZPX ;LSRZX
PUSHJ P,LSRT
PUSHJ P,MEMDP
POPJ P,]
UDO
[ TRZ PS,IBIT ;CLI
POPJ P,]
[ PUSHJ P,ABY ;EORY
PUSHJ P,EORA
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ABX ;EORX
PUSHJ P,EORA
POPJ P,]
[ PUSHJ P,ABX ;LSRX
PUSHJ P,LSRT
PUSHJ P,MEMDP
POPJ P,]
UDO
[ PUSHJ P,PUL ;RTS
HRRZ PC,
PUSHJ P,PUL
LSH 10
OR PC,
AOJ PC,
TDZ PC,ZWD16
POPJ P,]
[ PUSHJ P,INDX ;ADCIX
PUSHJ P,ADCA
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ZPAGE ;ADCZ
PUSHJ P,ADCA
POPJ P,]
UDO
UDO
[ PUSHJ P,PUL ;PLA
HRRZ A,
POPJ P,]
[ PUSHJ P,IFTCH
PUSHJ P,ADCA
POPJ P,]
UDO
UDO
[ PUSHJ P,ABS ;JMPIN
HRRZ PC,
AOJ MA,
PUSHJ P,MFTCH
LSH 10
OR PC,
PUSHJ P,@INSTBL+JMP
POPJ P,]
[ PUSHJ P,ABS
PUSHJ P,ADCA
POPJ P,]
UDO
UDO
[ HRRZI B,VBIT
PUSHJ P,BRT
POPJ P,]
[ PUSHJ P,INDY
PUSHJ P,ADCA
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ZPX
PUSHJ P,ADCA
POPJ P,]
UDO
UDO
[ TRO PS,IBIT ;SEI
POPJ P,]
[ PUSHJ P,ABY ;ADCY
PUSHJ P,ADCA
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ABX
PUSHJ P,ADCA
POPJ P,]
UDO
UDO
UDO
[ HRRZI B,(A)
PUSHJ P,STIX
POPJ P,]
UDO
UDO
[ HRRZI B,(Y)
PUSHJ P,STZ
POPJ P,]
[ HRRZI B,(A)
PUSHJ P,STZ
POPJ P,]
[ HRRZI B,(X)
PUSHJ P,STZ
POPJ P,]
UDO
[ HRRZI (Y)
PUSHJ P,DECM
HRRZ Y,
POPJ P,]
UDO
[ HRRZI (X)
PUSHJ P,NZTST
HRRZI A,(X)
POPJ P,]
UDO
[ HRRZI B,(Y)
PUSHJ P,STAAB
POPJ P,]
[ HRRZI B,(A)
PUSHJ P,STAAB
POPJ P,]
[ HRRZI B,(X)
PUSHJ P,STAAB
POPJ P,]
UDO
[ HRRZI B,CBIT
PUSHJ P,BRF
POPJ P,]
[ HRRZI B,(A)
PUSHJ P,STIY
POPJ P,]
UDO
UDO
[ HRRZI B,(Y)
PUSHJ P,STZX
POPJ P,]
[ HRRZI B,(A)
PUSHJ P,STZX
POPJ P,]
[ HRRZI B,(X)
PUSHJ P,STZY
POPJ P,]
UDO
[ HRRZI (Y)
PUSHJ P,NZTST
HRRZI A,(Y)
POPJ P,]
[ HRRZI B,(A)
PUSHJ P,STAABY
POPJ P,]
[ HRRZI SP,(X)
POPJ P,]
UDO
UDO
[ HRRZI B,(A)
PUSHJ P,STAABX
POPJ P,]
UDO
UDO
[ PUSHJ P,LDIM
HRRZ Y,
POPJ P,]
[ PUSHJ P,LDIX
HRRZ A,
POPJ P,]
[ PUSHJ P,LDIM
HRRZ X,
POPJ P,]
UDO
[ PUSHJ P,LDZ
HRRZ Y,
POPJ P,]
[ PUSHJ P,LDZ
HRRZ A,
POPJ P,]
[ PUSHJ P,LDZ
HRRZ X,
POPJ P,]
UDO
[ HRRZI (A)
PUSHJ P,NZTST
HRRZI Y,(A)
POPJ P,]
[ PUSHJ P,LDIM
HRRZ A,
POPJ P,]
[ HRRZI (A)
PUSHJ P,NZTST
HRRZI X,(A)
POPJ P,]
UDO
[ PUSHJ P,LDAAB
HRRZ Y,
POPJ P,]
[ PUSHJ P,LDAAB
HRRZ A,
POPJ P,]
[ PUSHJ P,LDAAB
HRRZ X,
POPJ P,]
UDO
[ HRRZI B,CBIT
PUSHJ P,BRT
POPJ P,]
[ PUSHJ P,LDIY
HRRZ A,
POPJ P,]
UDO
UDO
[ PUSHJ P,LDZX
HRRZ Y,
POPJ P,]
[ PUSHJ P,LDZX
HRRZ A,
POPJ P,]
[ PUSHJ P,LDZY
HRRZ X,
POPJ P,]
UDO
[ TRZ PS,VBIT
POPJ P,]
[ PUSHJ P,LDAAB
HRRZ A,
POPJ P,]
[ HRRZI X,(SP)
POPJ P,]
UDO
[ PUSHJ P,LDAABX
HRRZ Y,
POPJ P,]
[ PUSHJ P,LDAABX
HRRZ A,
POPJ P,]
[ PUSHJ P,LDAABY
HRRZ X,
POPJ P,]
UDO
[ PUSHJ P,IFTCH
PUSHJ P,CPYM
POPJ P,]
[ PUSHJ P,INDX
PUSHJ P,CMPM
POPJ P,]
UDO
UDO
[ PUSHJ P,ZPAGE
PUSHJ P,CPYM
POPJ P,]
[ PUSHJ P,ZPAGE
PUSHJ P,CMPM
POPJ P,]
[ PUSHJ P,ZPAGE
PUSHJ P,DECM
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI (Y)
PUSHJ P,INCM
HRRZ Y,
POPJ P,]
[ PUSHJ P,IFTCH
PUSHJ P,CMPM
POPJ P,]
[ HRRZI (X)
PUSHJ P,DECM
HRRZ X,
POPJ P,]
UDO
[ PUSHJ P,ABS
PUSHJ P,CPYM
POPJ P,]
[ PUSHJ P,ABS
PUSHJ P,CMPM
POPJ P,]
[ PUSHJ P,ABS
PUSHJ P,DECM
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI B,ZBIT
PUSHJ P,BRF
POPJ P,]
[ PUSHJ P,INDY
PUSHJ P,CMPM
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ZPX
PUSHJ P,CMPM
POPJ P,]
[ PUSHJ P,ZPX
PUSHJ P,DECM
PUSHJ P,MEMDP
POPJ P,]
UDO
[ TRZ PS,DBIT
SETZM DECFLG
POPJ P,]
[ PUSHJ P,ABY
PUSHJ P,CMPM
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ABX
PUSHJ P,CMPM
POPJ P,]
[ PUSHJ P,ABX
PUSHJ P,DECM
PUSHJ P,MEMDP
POPJ P,]
UDO
[ PUSHJ P,IFTCH
PUSHJ P,CPXM
POPJ P,]
[ PUSHJ P,INDX
PUSHJ P,SBCA
POPJ P,]
UDO
UDO
[ PUSHJ P,ZPAGE
PUSHJ P,CPXM
POPJ P,]
[ PUSHJ P,ZPAGE
PUSHJ P,SBCA
POPJ P,]
[ PUSHJ P,ZPAGE
PUSHJ P,INCM
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI (X)
PUSHJ P,INCM
HRRZ X,
POPJ P,]
[ PUSHJ P,IFTCH
PUSHJ P,SBCA
POPJ P,]
[ POPJ P,]
UDO
[ PUSHJ P,ABS
PUSHJ P,CPXM
POPJ P,]
[ PUSHJ P,ABS
PUSHJ P,SBCA
POPJ P,]
[ PUSHJ P,ABS
PUSHJ P,INCM
PUSHJ P,MEMDP
POPJ P,]
UDO
[ HRRZI B,ZBIT
PUSHJ P,BRT
POPJ P,]
[ PUSHJ P,INDY
PUSHJ P,SBCA
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ZPX
PUSHJ P,SBCA
POPJ P,]
[ PUSHJ P,ZPX
PUSHJ P,INCM
PUSHJ P,MEMDP
POPJ P,]
UDO
[ TRO PS,DBIT
SETZM DECFLG
POPJ P,]
[ PUSHJ P,ABY
PUSHJ P,SBCA
POPJ P,]
UDO
UDO
UDO
[ PUSHJ P,ABX
PUSHJ P,SBCA
POPJ P,]
[ PUSHJ P,ABX
PUSHJ P,INCM
PUSHJ P,MEMDP
POPJ P,]
UDO
IBUF: BLOCK 4
FILNAM: 0
FILEXT: 0
0
FILPPN: 0
GNAME: SETZM FILEXT+1
SETZM FILPPN
MOVE A,['DMP ']
MOVEM A,FILEXT
PUSHJ P,GETNAM
SKIPN A
MOVE A,['ROM ']
GEXT: MOVEM A,FILNAM
CAIE C,"."
JRST NOEXTN
PUSHJ P,GETNAM
MOVEM A,FILEXT
NOEXTN: CAIE C,"["
JRST FFDX
PUSHJ P,GETP
HRLZM A,FILPPN
PUSHJ P,GETP
HRRM A,FILPPN
FFDX: INCHRW C
CAIE C,12
JRST FFDX
POPJ P,
GETNAM: MOVEI A,
MOVE B,[440600,,A]
GETNML: PUSHJ P,RCH
POPJ P,
SUBI C,40
TLNE B,770000
IDPB C,B
JRST GETNML
GETP: MOVEI A,
GETPL: PUSHJ P,RCH
POPJ P,
TRNE A,770000
JRST GETPL
LSH A,6
ADDI A,-40(C)
JRST GETPL
RCH: INCHWL C
CAIN C,42
JRST RCHQ
CAIE C,11
CAIN C," "
JRST RCH
CAIE C,"."
CAIN C,","
POPJ P,
CAIE C,"["
CAIN C,"]"
POPJ P,
RCHQR: CAIGE C,40
POPJ P,
CAIL C,"a"
CAILE C,"z"
CAIA
SUBI C,40
POPJ1: AOS (P)
POPJ P,
RCHQ: INCHWL C
JRST RCHQR
MEM: BLOCK 100000
END STAR